package com.yqh;

import com.yqh.discovery.RegistryConfig;
import com.yqh.impl.HelloMyrpcImpl;

/**
 * @author 阳秋豪
 * @createTime 2024/2/28
 */
public class ProviderApplication {
    public static void main(String[] args) {
        // 服务提供方 --> 需要注册服务与启动服务
        // 1、封装要发布的服务
        ServiceConfig<HelloMyrpc> service = new ServiceConfig<>();
        service.setInterfaceProvider(HelloMyrpc.class);
        service.setRef(new HelloMyrpcImpl());
        // 2、定义注册中心
        // 3、通过启动引导程序，启动服务提供方
        //   （1）配置 --> 应用的名称 -- 注册中心 -- 协议（序列化/反序列化等） -- 压缩方式 -- 等等
        //   （2）发布服务
        MyrpcBootstrap
                // 获取启动类的实例
                .getInstance()
                // 当前应用的名称
                .application("first-myrpc-provider")
                // 配置注册中心
                .registry(new RegistryConfig("zookeeper://127.0.0.1:2181"))
                // 配置协议
                .protocol(new ProtocolConfig("jdk"))
                // 发布服务
                .publish(service)
                // 启动服务
                .start();
    }
}
